package com.wskj.common.utils.tencent.bean;

import lombok.Data;

import java.util.List;
import java.util.Map;

/**
 * 即时通信返回结果
 *
 * @author Gun
 * @date 2021/10/5
 */
@Data
public class ImApiResponse {

    /**
     * 请求处理的结果，OK 表示处理成功，FAIL 表示失败
     */
    private String ActionStatus;

    /**
     * 错误码，0表示成功，非0表示失败
     */
    private Integer ErrorCode;

    /**
     * 错误信息
     */
    private String ErrorInfo;

    /**
     * 详细的客户端展示信息
     */
    private String ErrorDisplay;

    /**
     * 结束标识：1 表示已返回全量会话，0 表示还有会话没拉完
     */
    private String CompleteFlag;

    /**
     * 普通会话下一页拉取的起始时间，分页拉取时通过请求包的 TimeStamp 字段带给移动通信后台
     */
    private String TimeStamp;

    /**
     * 普通会话下一页拉取的起始位置，分页拉取时通过请求包的 StartIndex 字段带给移动通信后台
     */
    private String StartIndex;

    /**
     * 置顶会话下一页拉取的起始时间，分页拉取时通过请求包的 TopTimeStamp 字段带给移动通信后台
     */
    private String TopTimeStamp;

    /**
     * 置顶会话下一页拉取的起始位置，分页拉取时通过请求包的 TopStartIndex 字段带给移动通信后台
     */
    private String TopStartIndex;

    /**
     * 在线人数
     */
    private Integer OnlineMemberNum;

    private List<Map<String, Object>> ResultItem;

    private List<Map<String, String>> GroupInfo;

    /** 用户资料 */
    private List<Map<String,String>> UserProfileItem;

    /**
     * 本群组的群成员总数
     */
    private Integer MemberNum;

    /**
     * 群成员列表
     */
    private List<Map<String, Object>> MemberList;

    /**
     * 会话信息列表
     */
    private List<Map<String,Object>> SessionItem;

    private Map<String,Object> Response;

    public static ImApiResponse ok() {
        ImApiResponse response = new ImApiResponse();
        response.setActionStatus("OK");
        response.setErrorCode(0);
        return response;
    }

    public static ImApiResponse fail(String msg) {
        ImApiResponse response = new ImApiResponse();
        response.setActionStatus("FAIL");
        response.setErrorInfo(msg);
        return response;
    }
}
